Error correcting latch

ABSTRACT

An error-correcting partial latch stage includes a first pass gate having an input for receiving a data input signal, an output, and a control node for receiving a control signal, a second pass gate having an input coupled to the output of the first pass gate, an output for providing a data output signal, and a control node for receiving the control signal, an inverter having an input coupled to the output of the first pass gate and an output; and a correcting inverter stage having a first input coupled to the output of the inverter, and second and third inputs for receiving voting signals from adjacent error-correcting latch stages, and an output coupled to the output of the second pass gate. A full latch stage includes three interconnected partial latch stages. The full latch stage has a high degree of immunity from SEU events and from on-chip noise coupling.

BACKGROUND OF THE INVENTION

[0001] This invention relates generally to integrated latch or flip-flopcircuits, and, more particularly, to a technique for correcting errorsin the output signal of the latch due to single event upsets or on-chipcoupling noise.

[0002] A single event upset (SEU) is the result of an ion transitioningthrough a semiconductor structure and, in doing so, causing charge to bedeposited on critical circuit nodes within that structure. In a CMOSlogic circuit, such as a latch circuit, this can cause an unintendedswitch in the output logic state, creating potentially catastrophicconsequences for the system. In the case of storage cells and latchcircuits, the primary SEU problem lies in the feedback path, whereamplification and feedback of noise on a critical node can permanentlychange the cell's logic state.

[0003] Known SEU hardening or error-correcting techniques for CMOS logicinclude the use of redundant circuit paths, and for memory cells it isknown to use cross-coupled resistors or capacitors. Multiple circuitpaths provide redundancy and allow implementation of voting schemes toreduce the effect of SEUs. The addition of cross-coupled resistors andcapacitors in a storage cell slows the cell's ability to latch falsedata. However, each of these techniques has its drawbacks. The typicalvoting scheme uses appended digital logic to recombine the redundantpaths, which complicates clocking of sequential circuitry and mayactually exacerbate the effects of the SEU. The addition ofcross-coupled resistors and capacitors in a storage cell involves morecomplicated fabrication processes and results in slower response to allinput signals, thereby decreasing its operating speed.

[0004] A need remains, therefore, for a robust latch circuit solutionthat substantially reduces errors due to SEUs or on-chip noise coupling.

SUMMARY OF THE INVENTION

[0005] According to the present invention an error-correcting latch hasthe error-correcting circuitry built directly into the feedback path ofthe latch to ensure that errors due to SEUs or on-chip noise couplingare substantially reduced and are not fed through to the output as inprior art designs. The error-correcting latches of the present inventionuse a two-out-of-three voting scheme that is embedded into the feedbackpath of the latch itself.

[0006] A first embodiment of an error-correcting partial latch stageincludes a first pass gate having an input for receiving a data inputsignal, an output, and a control node for receiving a control signal, asecond pass gate having an input coupled to the output of the first passgate, an output for providing a data output signal, and a control nodefor receiving the control signal, an inverter having an input coupled tothe output of the first pass gate and an output; and a correctinginverter stage having a first input coupled to the output of theinverter, and second and third inputs for receiving voting signals fromadjacent error-correcting latch stages, and an output coupled to theoutput of the second pass gate.

[0007] A second embodiment of an error-correcting partial latch stageincludes a gated inverter having an input for receiving a data inputsignal, an output, and a control node for receiving a control signal, apass gate having an input coupled to the output of the gated inverter,an output, and a control node for receiving the control signal, aninverter having an output coupled to the output of the pass gate, and acorrecting inverter stage having a first input coupled to the output ofthe gated inverter, and second and third inputs for receiving votingsignals from adjacent error-correcting latch stages, and an outputcoupled to the input of the inverter for providing a data output signal.

[0008] A third embodiment of an error-correcting partial latch stageincludes a first pass gate having an input for receiving a data inputsignal, an output, and a control node for receiving a control signal, asecond pass gate having an input coupled to the output of the first passgate, an output for providing a data output signal, and a control nodefor receiving the control signal, an inverter having an input coupled tothe output of the first pass gate and an output, a first delay pathhaving an input coupled to the output of the inverter and an output, asecond delay path having an input coupled to the output of the inverterand an output, and a correcting inverter stage having a first inputcoupled to the output of the inverter, a second input coupled to theoutput of the first delay path, a third input coupled to the output ofthe second delay path, and an output coupled to the output of the secondpass gate.

[0009] A fourth embodiment of an error-correcting latch stage includes agated inverter having an input for receiving a data input signal, anoutput, and a control node for receiving a control signal, a pass gatehaving an input coupled to the output of the gated inverter, an output,and a control node for receiving the control signal, an inverter havingan output coupled to the output of the pass gate, a first delay pathhaving an input coupled to the output of the gated inverter and anoutput, a second delay path having an input coupled to the output of thegated inverter and an output; and a correcting inverter stage having afirst input coupled to the output of the gated inverter, a second inputcoupled to the output of the first delay path, a third input coupled tothe output of the second delay path, and an output coupled to the inputof the inverter for providing a data output signal.

[0010] A first embodiment of the correcting inverter stage includesfirst, second, and third two-input AND gates coupled to a three-inputNOR gate. A second embodiment of the correcting inverter stage includesfirst, second, and third two-input NAND gates coupled to a three-inputNAND gate. A third embodiment of the correcting inverter stage includesa CMOS transistor circuit comprising three differential PMOS stagescoupled to three cascoded NMOS stages. Each of the correcting inverterstage embodiments preferably operates according to the same logicfunction.

[0011] For the first and second embodiments, a full latch stage includesthree interconnected partial latch stages with an optional outputcorrecting inverter stage for providing an extra measure of immunity toSEU events. A full latch stage for the first and second embodimentsincludes first, second, and third partial latch stages, each latch stagehaving an input for receiving a data input signal, a correcting inverterstage, and an output for providing an output signal. The output signalsof the first, second, and third partial latch stages can be logicallycombined to provide the final output signal, or simply one of theindividual outputs can be used as the final output signal.

[0012] If desired, an error-correcting full D-type master-slaveflip-flop can be built having a master latch stage including first,second, and third partial latch stages, each latch stage having an inputfor receiving a data input signal, a correcting inverter stage, and anoutput for providing an intermediate signal, and a slave latch stagecoupled to the master last stage including first, second, and thirdpartial latch stages, each latch stage having an input for receiving theintermediate signal, a correcting inverter stage, and an output forproviding an output signal. An error-correcting full D-type master-slaveflip-flop can also be built using the delayed correcting latch, or acombination of the two.

[0013] The foregoing and other objects, features and advantages of theinvention will become more readily apparent from the following detaileddescription of a preferred embodiment of the invention, which proceedswith reference to the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0014]FIG. 1A is a schematic diagram of a non-inverting prior art passgate circuit including an N-channel transistor in parallel combinationwith a P-channel transistor, and the corresponding symbols for a passgate that are used in subsequent drawing figures;

[0015]FIG. 1B is a schematic diagram of a gated inverter circuitincluding two N-channel transistors and two P-channel transistors incascode connection, and the corresponding symbol for a gated inverterthat is used in subsequent drawing figures;

[0016]FIG. 2 is a schematic diagram of a prior art latch stage usingpass gates;

[0017]FIG. 3 is a schematic diagram of a first embodiment of anerror-correcting partial latch stage according to the present invention;

[0018]FIG. 4 is a schematic diagram of a first embodiment of anerror-correcting delay latch stage according to the present invention;

[0019]FIG. 5 is a schematic diagram of a prior art latch stage using agated inverter and a pass gate;

[0020]FIG. 6 is a schematic diagram of a second embodiment of anerror-correcting partial latch stage according to the present invention;

[0021]FIG. 7 is a schematic diagram of a second embodiment of anerror-correcting delay latch stage according to the present invention;

[0022]FIG. 8 is a transistor-level schematic diagram of a correctinginverter stage used in the error-correcting latch stages of FIGS. 3, 4,6, and 7;

[0023]FIG. 9 shows the symbol and corresponding logic table for thecorrecting inverter stage of the present invention;

[0024]FIG. 10 is a schematic diagram of a “AND-NOR” logic gateimplementation of the correcting inverter circuit used in the presentinvention;

[0025]FIG. 11 is a schematic diagram of a “NAND” logic gateimplementation of the correcting inverter circuit used in the presentinvention;

[0026]FIG. 12 is a schematic diagram of a full correcting latch stageusing the partial latch stages of FIG. 3 according to the presentinvention;

[0027]FIG. 13 is a schematic diagram of a logic gate embodiment of thedelay circuits used in the delay latch stages of FIGS. 4 and 7 accordingto the present invention, and, in particular, showing an implementationof preset and clear functions; and

[0028]FIG. 14 is a schematic diagram of a correcting master slaveflip-flop according to the present invention where the block labeled EDLcan be either a parallel correcting latch or a delayed correcting latch.

DETAILED DESCRIPTION

[0029] Referring now to FIG. 1A, a conventional pass gate 10 is shownhaving an input terminal 16, an output terminal 18, a CK clock inputterminal 22, and a CKB inverted clock input terminal 20. Pass gate 10includes a parallel combination of a P-channel transistor 12 and anN-channel transistor 14, wherein the current paths of transistors 12 and14 form the selective signal path controlled by the CK and CKB signalsapplied to the gates of transistors 12 and 14, respectively. A firstsymbol for pass gate 10′ is shown in which the two transistors arerepresented as a single crossed rectangle, wherein only the input 16,output 18, and clock inputs 20 and 22 are shown. A simplerrepresentation 10″ for the pass gate is also shown in which only theinput 16 and output 18 are labeled.

[0030] In FIG. 1B a “gated inverter” 30 includes the cascode arrangementof P-channel transistors 24 and 26, and N-channel transistors 28 and 32.The input signal is applied to the gates 16 of transistors 24 and 32,the CK signal is applied to the gate 22 of transistor 26, and the CKBsignal is applied to the gate 20 of transistor 28. The output signal isformed at the junction 18 between transistors 26 and 28. The combinedcurrent paths of transistors 24, 26, 28, and 32 are coupled between theVDD power supply and ground. A symbol for gated inverter 30′ is shown inwhich the two transistors are represented as a triangle, wherein onlythe input 16, the inverted output 18, and clock inputs 20 and 22 areshown.

[0031] While the function of circuits 10 and 30 is essentially the same,i.e. to pass a signal from the input to the output under control of theclock signal, it should be noted that the gated inverter 30 inverts theinput signal and also has a much higher input impedance than pass gatecircuit 10.

[0032] Referring now to FIG. 2, a conventional latch stage 40 is shownhaving an input 34 and an output 36. A first pass gate 44 receives theinput signal and is coupled to a first inverter 38 and a second passgate 46. Inverter 38, in turn, is coupled to a second inverter 42. Theoutput signal terminal 36 is formed at the output of the second inverter42. The function of latch 40 is to pass the input signal to the output36 under a first clock data state and to retain the data state at theoutput under a second clock data state.

[0033] Referring now to FIG. 3, latch 40 has been modified to form anerror-correcting partial latch stage 50. In particular, note that thesecond inverter 42 is replaced with a “correcting inverter stage” 48,which is described in further detail below. The correcting inverterstage 48 has an inverting output as previously described inverter 42,but has three inputs. A first input is supplied by the output ofinverter 38, and the other inputs 52 and 54 are provided by two othersuch partial latch stages 50 (not shown in FIG. 3) that are described infurther detail below.

[0034] Referring now to FIG. 4, latch 40 has been modified to form anerror-correcting delay latch stage 60. In particular, note that thesecond inverter 42 is replaced with a “correcting inverter stage” 48 andtwo delay circuits 56 and 58, which eliminates the need for adjacentpartial latch stages as described above. Delay circuits 56 and 58provide differing delay times and may be modified to include a presetand clear function as is described in further detail below with respectto FIG. 13.

[0035] Referring now to FIG. 5, a second conventional latch stage 70 isshown having a gated inverter 62 at the input for greater inputimpedance. Gated inverter 62 receives the input signal at node 34 and iscoupled to a first inverter 64 and pass gate 46. Inverter 64, in turn,is coupled to a second inverter 66. The output signal terminal is formedat the connection between inverter 64 and inverter 66 for providing theoutput signal at node 36.

[0036] Referring now to FIG. 6, latch 70 has been modified to form anerror-correcting partial latch stage 120. In particular, note thatinverter 64 is replaced with a correcting inverter stage 48. Thecorrecting inverter stage 48 has three inputs an inverting output aspreviously described. A first input signal is supplied by the output ofgated inverter 62, and the other two inputs are provided by two othersuch partial latch stages 120 (not shown in FIG. 6).

[0037] Referring now to FIG. 7, latch 70 has been modified to form anerror-correcting delay latch stage 110. In particular, note that thesecond inverter 64 is replaced with a correcting inverter stage 48 andtwo delay circuits 56 and 58, which eliminates the need for adjacentpartial latch stages as described above. Delay circuits 56 and 58provide differing delay times and may be modified to include a presetand clear function as is described in further detail below with respectto FIG. 13.

[0038] Referring now to FIG. 8, a correcting inverter stage 48′ is shownin a transistor-level implementation. In the transistor-levelimplementation shown in FIG. 8, the inputs of the correcting inverterstage are labeled Q1, Q2, and Q3. The inverting output is labeled QOUTB.Correcting inverter stage 48′ is a CMOS transistor circuit having threedifferential PMOS stages coupled to three cascoded NMOS stages. Thethree PMOS stages include parallel-coupled P-channel transistors P50 andP58 in which the gates thereof receive the Q1 and Q3 signals,parallel-coupled P-channel transistors P47 and P59 in which the gatesthereof receive the Q2 and Q3 signals, and parallel-coupled P-channeltransistors P44 and P58 in which the gates thereof receive the Q2 and Q1signals. The three NMOS stages include cascode-coupled N-channeltransistors N46 and N49 in which the gates thereof receive the Q1 and Q2signals, cascode-coupled N-channel transistors N43 and N56 in which thegates thereof receive the Q3 and Q2 signals, and cascode-coupledN-channel transistors N58 and N57 in which the gates thereof receive theQ3 and Q1 signals. The QOUTB signal is provided at the drains ofN-channel transistors N46, N43, and N58.

[0039] Referring now to FIG. 9, the standard symbol for the correctinginverter stage 48 is shown, along with the corresponding logic table inwhich Q1, Q2, and Q3 are the inputs to the correcting inverter and QOUTBis the inverting output signal. The logic table is given below: LOGICTABLE FOR CORRECTING INVERTER 48 Q1 (Input) Q2 (Input) Q3 (Input) QOUTB0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0

[0040] Referring now to FIGS. 10 and 11, an AND-NOR gate-levelimplementation of a correcting inverter stage 48″ includes first,second, and third two-input AND gates 72, 74, and 76 coupled to athree-input NOR gate 78. A NAND gate-level implementation of acorrecting inverter stage 48′″ includes first, second, and thirdtwo-input NAND gates 82, 84, and 86 coupled to a three-input NAND gate88, which is in turn coupled to inverter 92 to provide the same logicfunction as the two previous correcting inverter stages 48′ and 48″ andset forth in the table above.

[0041] Referring now to FIG. 12 a full latch stage 80 using pass gatesis shown. Partial latch stages 501, 502, and 503 are interconnected asshown. Each partial latch stage receives the input signal at terminal 94and the output signals Q1B, Q2B, and Q3B are interconnected as shown.The Q1B output signal is generated in partial latch stage 501, the Q2Boutput signal is generated in partial latch stage 502, and the Q3Boutput signal is generated in partial latch stage 503. An optional errorcorrecting inverter stage 98 may be used for further immunity to SEUevents or noise coupling to generate output 96. Otherwise, thecorrecting inverter stage 98 may be omitted and any one of the outputsQ1, Q2, or Q3 may be used as the final latch output. Full latch stage 80may be easily modified to substitute the second partial latch stageembodiment shown in FIG. 6 for partial latch stages 501, 502, and 503.

[0042] Referring now to FIG. 13, a portion 90 of delay latch 60 of FIG.4 or delay latch 110 of FIG. 7 is shown including a first delay circuit58, a second delay circuit 56, and a correcting inverter 48. The firstdelay circuit 58 has a delay of N times that of the second delay circuit56. In the particular embodiment shown in FIG. 13, N is set to two. Thefirst delay circuit 58 includes serially-connected NAND gates 106, 108,112, and 114. NAND gate 106 includes a PB (preset-bar) input 102, andthe output is coupled to NAND gate 108. NAND gate 108 includes a CB(clear-bar) input 104, and the output is coupled to NAND gate 112. NANDgates 112 and 114 have coupled inputs and are used only to provide therequired delay through delay circuit 58. The output of NAND gate 114 iscoupled to correcting inverter 48. Similarly, delay circuit 56 includesserially-connected NAND gates 116 and 118. NAND gate 116 includes a PB(preset-bar) input 102, and the output is coupled to NAND gate 118. NANDgate 118 includes a CB (clear-bar) input 104, and the output is coupledto correcting inverter 48.

[0043] It is important to note that in delay circuits 58 and 56, onlyone desirable embodiment is shown. As is known by those in the art,various combinations of gates may be used to provide a desired delay.Similarly, various logical combinations of AND, OR, NAND, NOR ortransistor-level logic in conjunction with other known delay elementsmay also be used to provide the preset and clear functions inconjunction with the required delay times.

[0044] It is also important to note that the preset and clear functionsprovided by delay circuits 58 and 56 are also error-correcting. That is,only two of the three preset and clear inputs (recall that threeseparate partial latch stages are required) need be true to form a validpreset or clear function.

[0045] Referring now to FIG. 14, An error-correcting D-type master-slaveflip-flop 100 is shown including a master latch stage 122 using any ofthe previously described “full” latch stages or delay latch stages, eachfull latch stage having an input for receiving a data input signal, acorrecting inverter stage, and an output for providing an intermediatesignal, and a slave latch stage 124 using any of the previouslydescribed “full” latch stages or delay latch stages coupled to themaster last stage, each latch stage having an input for receiving theintermediate signal, a correcting inverter stage, and an output forproviding an output signal.

[0046] Having described and illustrated the principle of the inventionin a preferred embodiment thereof, it is appreciated by those havingskill in the art that the invention can be modified in arrangement anddetail without departing from such principles. We therefore claim allmodifications and variations coming within the spirit and scope of thefollowing claims.

I claim:
 1. An error-correcting latch stage comprising: a first passgate having an input for receiving a data input signal, an output, and acontrol node for receiving a control signal; a second pass gate havingan input coupled to the output of the first pass gate, an output forproviding a data output signal, and a control node for receiving thecontrol signal; an inverter having an input coupled to the output of thefirst pass gate and an output; and a correcting inverter stage having afirst input coupled to the output of the inverter, and second and thirdinputs for receiving voting signals from adjacent error-correcting latchstages, and an output coupled to the output of the second pass gate. 2.An error-correcting latch stage as in claim 1 in which the correctinginverter stage comprises first, second, and third two-input AND gatescoupled to a three-input NOR gate.
 3. An error-correcting latch stage asin claim 1 in which the correcting inverter stage comprises first,second, and third two-input NAND gates coupled to a three-input NANDgate.
 4. An error-correcting latch stage as in claim 1 in which thecorrecting inverter stage comprises a CMOS transistor circuit comprisingthree differential PMOS stages coupled to three cascoded NMOS stages. 5.An error-correcting latch stage as in claim 1 in which the correctinginverter stage operates according to the following logic table: Q1 Q2 Q3QOUTB 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0


6. An error-correcting latch stage comprising: a first pass gate havingan input for receiving a data input signal, an output, and a controlnode for receiving a control signal; a second pass gate having an inputcoupled to the output of the first pass gate, an output for providing adata output signal, and a control node for receiving the control signal;an inverter having an input coupled to the output of the first pass gateand an output; a first delay path having an input coupled to the outputof the first pass gate and an output; a second delay path having aninput coupled to the output of the first pass gate and an output; and acorrecting inverter stage having a first input coupled to the output ofthe inverter, a second input coupled to the output of the first delaypath, a third input coupled to the output of the second delay path, andan output coupled to the output of the second pass gate.
 7. Anerror-correcting latch stage as in claim 6 in which the correctinginverter stage comprises first, second, and third two-input AND gatescoupled to a three-input NOR gate.
 8. An error-correcting latch stage asin claim 6 in which the correcting inverter stage comprises first,second, and third two-input NAND gates coupled to a three-input NANDgate.
 9. An error-correcting latch stage as in claim 6 in which thecorrecting inverter stage comprises a CMOS transistor circuit comprisingthree differential PMOS stages coupled to three cascoded NMOS stages.10. An error-correcting latch stage as in claim 6 in which thecorrecting inverter stage operates according to the following logictable: Q1 Q2 Q3 QOUTB 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 11 0 0 1 1 1 0


11. An error-correcting latch stage comprising: a grated inverter havingan input for receiving a data input signal, an output, and a controlnode for receiving a control signal; a pass gate having an input coupledto the output of the gated inverter, an output, and a control node forreceiving the control signal; an inverter having an input and an outputcoupled to the output of the pass gate; and a correcting inverter stagehaving a first input coupled to the output of the gated inverter, andsecond and third inputs for receiving voting signals from adjacenterror-correcting latch stages, and an output coupled to the input of theinverter for providing a data output signal.
 12. An error-correctinglatch stage as in claim 11 in which the correcting inverter stagecomprises first, second, and third two-input AND gates coupled to athree-input NOR gate.
 13. An error-correcting latch stage as in claim 11in which the correcting inverter stage comprises first, second, andthird two-input NAND gates coupled to a three-input NAND gate.
 14. Anerror-correcting latch stage as in claim 11 in which the correctinginverter stage comprises a CMOS transistor circuit comprising threedifferential PMOS stages coupled to three cascoded NMOS stages.
 15. Anerror-correcting latch stage as in claim 11 in which the correctinginverter stage operates according to the following logic table: Q1 Q2 Q3QOUTB 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0


16. An error-correcting latch stage comprising: a gated inverter havingan input for receiving a data input signal, an output, and a controlnode for receiving a control signal; a pass gate having an input coupledto the output of the gated inverter, an output, and a control node forreceiving the control signal; an inverter having an input and an outputcoupled to the output of the pass gate; a first delay path having aninput coupled to the output of the gated inverter and an output; asecond delay path having an input coupled to the output of the gatedinverter and an output; and a correcting inverter stage having a firstinput coupled to the output of the gated inverter, a second inputcoupled to the output of the first delay path, a third input coupled tothe output of the second delay path, and an output coupled to the inputof the inverter for providing a data output signal.
 17. Anerror-correcting latch stage as in claim 16 in which the correctinginverter stage comprises first, second, and third two-input AND gatescoupled to a three-input NOR gate.
 18. An error-correcting latch stageas in claim 16 in which the correcting inverter stage comprises first,second, and third two-input NAND gates coupled to a three-input NANDgate.
 19. An error-correcting latch stage as in claim 16 in which thecorrecting inverter stage comprises a CMOS transistor circuit comprisingthree differential PMOS stages coupled to three cascoded NMOS stages.20. An error-correcting latch stage as in claim 16 in which thecorrecting inverter stage operates according to the following logictable: Q1 Q2 Q3 QOUTB 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 11 0 0 1 1 1 0


21. An error-correcting D-type latch stage comprising first, second, andthird latch stages, each latch stage having an input for receiving adata input signal, a correcting inverter stage, and an output forproviding an output signal.
 22. An error-correcting D-type latch stageas in claim 21 further comprising means for logically combining theoutput signals of the first, second, and third latch stages.
 23. Anerror-correcting D-type master-slave flip-flop comprising: a masterlatch stage including first, second, and third latch stages, each latchstage having an input for receiving a data input signal, a correctinginverter stage, and an output for providing an intermediate signal; anda slave latch stage coupled to the master last stage including first,second, and third latch stages, each latch stage having an input forreceiving the intermediate signal, a correcting inverter stage, and anoutput for providing an output signal.
 24. An error-correcting latchstage comprising a two-of-three voting circuit placed in a feedback loopof the latch stage.
 25. An error-correcting latch stage as in claim 24further comprising an error-correcting preset input.
 26. Anerror-correcting latch stage as in claim 24 further comprising anerror-correcting clear input.